Zooplankton Simulation Figure Testing
Results from Marine Heatwave Simulations 2023
Notes 3/30
Use just the data for the dominant species, not all taxa, for the dominant species plot. there will be one figure showing autumn heatwave response in the paper, the rest of the seasons will need to exist but will go in supplement. Try the horizons to see if that is insightful at all, but don’t spend all day on it. Maria suggested the absolute biomass difference as a unit, not percent change.
For the size bins. We can drop sb1 for protists, sb1+2 for actives, & sb 1 for passives. Protists will need their own color scale here.
For the diversity plots there needs to be a choice between displaying change as AWSpS or each season as y1 y2 y3 y4 …
About
This markdown will step through the different results from Maria’s work on heatwaves on plankton communities. Each result section will have its own header and options:
Loading the Data
Species Key Table
species : type of groups (protists, active copepod, passive copepod)
pft_numb : functional group number 1: protist, 2: active copepod, 3: passive copepod
min_size : minimum cell/body size (um)
max_size : maximum cell/body size (um)
temp_opt : temperature norm optima (Celcius)
control : control number for each group (1-112: protist, 1-64: active copepod, 1-24: passive copepod).
The control number is being used for the dominant groups plots (in the “ind_bio_X_XXXX”.csv more details in the dominant_species_FOLDER)
| species | pft_numb | min_size | max_size | temp_opt | control |
|---|---|---|---|---|---|
| protist | 1 | 1.00e-07 | 3.00e-07 | 0 | 1 |
| protist | 1 | 3.00e-07 | 7.00e-07 | 0 | 2 |
| protist | 1 | 7.00e-07 | 1.90e-06 | 0 | 3 |
| protist | 1 | 1.90e-06 | 5.20e-06 | 0 | 4 |
| protist | 1 | 5.20e-06 | 1.39e-05 | 0 | 5 |
| protist | 1 | 1.39e-05 | 3.73e-05 | 0 | 6 |
Dominant Species
The folder includes the absolute, relative biomass and control number of plankton functional groups for different heatwave scenarios. The second row is the heatwave seasonal value. From row 3 and afterwards we have the seasonal values after the heatwave.
*For copepods: ONLY THE ADULT STAGE
This folder contains sets of matrices that come in threes:
Reshaping:
Ind_bio = This matrix details which taxa correspond to the absolute/relative biomass in the other matrices. This is the identification key used to match to species dataframe.
abs_bio = the absolute biomass
rel_bio = relative biomass
| trial | species | matrix_row | matrix_col | control | relative_bio | absolute_bio | seasons | pft_numb | min_size | max_size | temp_opt |
|---|---|---|---|---|---|---|---|---|---|---|---|
| bio_CaA_autumn | act_cop | 1 | col_1 | 46 | 23.727548 | 4.155886 | Au_control | 2 | 0.8773067 | 87.73067 | 20 |
| bio_CaA_autumn | act_cop | 1 | col_2 | 54 | 22.017397 | 3.856352 | Au_control | 2 | 0.8773067 | 87.73067 | 24 |
| bio_CaA_autumn | act_cop | 1 | col_3 | 47 | 19.600459 | 3.433025 | Au_control | 2 | 2.9619363 | 296.19363 | 20 |
| bio_CaA_autumn | act_cop | 1 | col_4 | 55 | 17.348404 | 3.038577 | Au_control | 2 | 2.9619363 | 296.19363 | 24 |
| bio_CaA_autumn | act_cop | 1 | col_5 | 45 | 9.645399 | 1.670431 | Au_control | 2 | 0.2598526 | 25.98526 | 20 |
| bio_CaA_autumn | act_cop | 2 | col_1 | 54 | 37.236535 | 6.489351 | A | 2 | 0.8773067 | 87.73067 | 24 |
Dominant Species Data Wrangle:
Couple data wrangling steps here: - make row and column identifiers for what the season was, and what the year was that matches the heatwave trial - add one year of control as a lead-in for plots - join the control biomass as a column so we can caluclate difference and percent difference from what it would be without a heatwave disturbance - do some benchmarking against the taxa specific intra-annual fluctuation in biomass
Dominant Species Seasonal Cycle Controls
NOTES: Do a similar cleanup to the heatwave results, with some minor tweaks want all the columns to match so they can append. year = 0, hw_season is either none, or we can repeat it 4 times to filter with the data or we can just plop it on top whenever we want it later.
Control conditions precede the heatwave event. Need to assemble these into one consecutive year (year = 0), ordered by season, and then bind them ahead of the heatwave response data.
Figure Construction
Dominant Species Scatterplots
Objective:
We want to focus on the Autumn heatwaves to showcase them, the other seasons can go in the supplement. We want to follow how different body sizes respond, while acknowledging that the community is stable as a whole
From Maria: - One color (palette) for each temperature optima - Then use different hues to communicate the size ranges - Do warmer colors for warmer temperature optima
Copepods have optima of 20 & 24, these are the main optima to focus on Protists have a wider range
Scatterplots can reflect the response differences better than stacked bars
This figure hits all the information I think Maria wants, but is washed out because the biomass differences are on different scales for each functional group.
AHW - Independent Functional Groups
For main figure only put Autumn. Use multiple subplots for the functional groups and then within them the temperature optima. Size range and biomass tanges need to re-scale between these different groups, so they will need to be plotted independently.
AHW - Logistic Color Scales
If we want to show biomass on the y, we can use a logistic color scale for the body size. This would likely need different figures for the different functional groups since they cover different ranges.
AHW Horizons
Just so many taxa to show, but the idea is to use horizons to show how many seasons taxa are above/below their control state in some common unit (percent difference). The following figure is just the protists.
AHW Stacked Bars:
Stacked bars are probably the most obvious and least exciting plot form for this. They can show the contribution of various groups (temperature optima, functional group, body size) to the total aggregate or what fractions they are of the whole.
If we lead in with a year of the control state then its possible to try* and compare back and forth, but it is very hard to tell:
If we use fraction of the total community its a little easier to see where the relative biomass is, but again we need to pick either temperature or body size, can’t really do both, and we lose the comparison across functional groups.
AHW Change from Control Bars
These take the stacked bar idea, but subtract out the control state. Each taxa is done independently so we can see that theere are cases where similar taxa in temperature optima may do better/worse, and what that looks like accross the whole group:
This panel tracks each season longitudinally on its own, rather than as parts within a year.
Body-Size Bin Figures
The folder includes the differences of seasonal biomass (absolute number) of the size bins for protists (6), active copepods (6) and passive copepods communities (4).
*for copepods: ALL LIFE STAGES (juvenile + adult)
First row : the seasonal biomass difference during the heatwave
Rows 2- 36 : the biomass difference after the heatwave for 9 years
-- column headers seasons X_hw : the season when the HW occurs. All files start with the HW A : autumn S : spring Su : summer W : winter
Size Bin Anomalies Following Heatwaves
- Don’t need to show the control conditions
- Start with heatwave directly
- Don’t need to change, just do refining
- Remove the smallest groups for protists and passive copepods (the first smallest group)
- Remove the two smallest groups in the active copepods (the first 2 smallest groups)
File endings: NA = heatwave on both - Used in paper _cop_only = copepods only impacted with heatwave - supplement _prot_only = protists only impacted - supplement
| file_id | row | heatwave_condition | seasons | P_control | Ca_control | CaA_control | Cp_control | CaP_control |
|---|---|---|---|---|---|---|---|---|
| seasonal_control | 1 | Heatwave Occurs | W | 2 | 1.0551861929333 | 0.884576612903226 | 1.3252688172043 | 1.2244623655914 |
| seasonal_control | 2 | Heatwave Recovery | S | 1 | 0.49609375 | 0.4375 | 0.660450268817204 | 0.625 |
| seasonal_control | 3 | Heatwave Recovery | Su | 1 | 0.488642153532609 | 0.437669836956522 | 0.664628623188406 | 0.625 |
| seasonal_control | 4 | Heatwave Recovery | A | 1 | 0.509057348901099 | 0.440418956043956 | 0.631524725274725 | 0.614468864468865 |
| file_id | row | heatwave_condition | size_bin_1 | size_bin_2 | size_bin_3 | size_bin_4 | size_bin_5 | size_bin_6 |
|---|---|---|---|---|---|---|---|---|
| cc_A_mean_autumn_cop_only | 1 | Heatwave Occurs | 6.72e-05 | 0.0000443 | -0.2071580 | -1.5628502 | -6.1784698 | -0.2726971 |
| cc_A_mean_autumn_cop_only | 2 | Heatwave Recovery | 5.40e-06 | 0.0006766 | -0.0855209 | -2.2300260 | -3.6343000 | -0.3065866 |
| cc_A_mean_autumn_cop_only | 3 | Heatwave Recovery | 3.40e-06 | -0.0000118 | -0.0196872 | -0.3950534 | -3.6141015 | -0.7991909 |
| cc_A_mean_autumn_cop_only | 4 | Heatwave Recovery | 2.40e-06 | -0.0000166 | -0.4370677 | -1.1901704 | -5.8301654 | -0.3024307 |
| cc_A_mean_autumn_cop_only | 5 | Heatwave Recovery | -1.05e-05 | 0.0005679 | -0.3994118 | -5.6818918 | -0.2378401 | 2.9368526 |
| cc_A_mean_autumn_cop_only | 6 | Heatwave Recovery | 4.60e-06 | 0.0035631 | 0.0200558 | -1.4053838 | -2.3759260 | -0.6176969 |
| file_id | row | heatwave_condition | size_bin_1 | size_bin_2 | size_bin_3 | size_bin_4 | size_bin_5 | size_bin_6 |
|---|---|---|---|---|---|---|---|---|
| seasonal_spring_HW_diff | 1 | Heatwave Occurs | S_hw | 0 | -8.58516483516203e-05 | -0.0042925824175824 | -0.0289606227106227 | -0.0306776556776557 |
| seasonal_spring_HW_diff | 2 | Heatwave Recovery | Su | 0 | 0.0170014779250955 | 0.0565455850191362 | 0.00397245762711873 | 0.025537634408602 |
| seasonal_spring_HW_diff | 3 | Heatwave Recovery | A | 0 | 0.0231854838709677 | 0.046875 | -0.00520833333333326 | 0 |
| seasonal_spring_HW_diff | 4 | Heatwave Recovery | W | 0 | 0.00895889945652173 | 0.0446671195652174 | 5.66123188405765e-05 | 0 |
| seasonal_spring_HW_diff | 5 | Heatwave Recovery | Sp | 0 | 0.00907881181318682 | 0.0255837912087912 | 0.00171703296703296 | 0.0105311355311355 |
| seasonal_spring_HW_diff | 6 | Heatwave Recovery | S | 0 | 0.00645737937397506 | 0.0337701612903226 | 0.001008064516129 | 0.00134408602150526 |
| taxa | size_bin | bin_label |
|---|---|---|
| Active Copepods | size_bin_1 | expression(paste0(“≥”, 10^2)) |
| Active Copepods | size_bin_2 | expression(paste0(10^1, ” - “, 10^2)) |
| Active Copepods | size_bin_3 | expression(paste0(10^0, ” - “, 10^1)) |
| Active Copepods | size_bin_4 | expression(paste0(10^-1, ” - “, 10^0)) |
| Active Copepods | size_bin_5 | expression(paste0(10^-2, ” - “, 10^-1)) |
| Active Copepods | size_bin_6 | expression(paste0(“≤”, 10^-2)) |
| Passive Copepods | size_bin_1 | expression(paste0(“≥”, 10^2)) |
| Passive Copepods | size_bin_2 | expression(paste0(10^1, ” - “, 10^2)) |
| Passive Copepods | size_bin_3 | expression(paste0(10^0, ” - “, 10^1)) |
| Passive Copepods | size_bin_4 | expression(paste0(10^-1, ” - “, 10^0)) |
| Passive Copepods | size_bin_5 | expression(paste0(10^-2, ” - “, 10^-1)) |
| Passive Copepods | size_bin_6 | expression(paste0(“≤”, 10^-2)) |
| Protists | size_bin_1 | expression(paste0(“≥”, 10^-2)) |
| Protists | size_bin_2 | expression(paste0(10^-3, ” - “, 10^-2)) |
| Protists | size_bin_3 | expression(paste0(10^-4, ” - “, 10^-3)) |
| Protists | size_bin_4 | expression(paste0(10^-5, ” - “, 10^-4)) |
| Protists | size_bin_5 | expression(paste0(10^-6, ” - “, 10^-5)) |
| Protists | size_bin_6 | expression(paste0(“≤”, 10^-6)) |
Size-Bins Absolute Biomass
These all start with the season the heatwave hits, then the row number counts in integers for the seasons. Split the data by the heatwave season then based on that, proceed with the correct seasons that follow to construct labels.
$`Active Copepods`
$`Passive Copepods`
$Protists
Size-Bins Biomass Difference
Similar processing step to the absolute biomass table. These files don’t come with labels for the functional group so labels will have to wait:
Shannon Diversity Index Figures
The folder includes the shannon diversity indexes for protists, active copepods and passive copepods communities.
For copepods: ONLY THE ADULT STAGE
Each csv file has the shannon values for one specific season for 9 years. Year 0 : pre-heatwave year Year 1 : heatwave year Years 2-9 : years after the heatwave
| year | file_id | season_taxa | shannon_idx | hw_status | season | taxa |
|---|---|---|---|---|---|---|
| 0 | autumn_Ca_all_seasons | autumn_Ca_spring | 3.280343 | Pre-Heatwave | autumn | Active Copepods |
| 0 | autumn_Ca_all_seasons | autumn_Ca_summer | 4.136993 | Pre-Heatwave | autumn | Active Copepods |
| 0 | autumn_Ca_all_seasons | autumn_Ca_autumn | 4.795545 | Pre-Heatwave | autumn | Active Copepods |
| 0 | autumn_Ca_all_seasons | autumn_Ca_winter | 4.229620 | Pre-Heatwave | autumn | Active Copepods |
| 1 | autumn_Ca_all_seasons | autumn_Ca_spring | 4.128155 | Heatwave | autumn | Active Copepods |
| 1 | autumn_Ca_all_seasons | autumn_Ca_summer | 4.234364 | Heatwave | autumn | Active Copepods |
Richness Figures
Need two things: - Time - Shannon diversity (within a functional group)
The diversity index is on the annual scale, not the seasonal scale <-
Can start with the annual, and see what that looks like first
Difference in Response When heatwaves are on one group and not others
Data comes from size bins “Cop only” “Prot only”
Want to see/plot
Whether it was temperature that was driving the response, or a top-down driver on the changes. So which